A cache memory is a limited size fast memory, which stores blocks of data, known as lines, that reflect selected main memory locations. A cache memory is smaller than the main memory it reflects, which means the cache memory typically is not fully addressable and must store a tag field for each data line. The tag field identifies the main memory address corresponding to a particular data line. Data caching systems are typically used by various processing devices to minimize access time to an external main memory device, such as a multi-bank double data rate (DDR) dynamic random access memory (DRAM). The reduced access time and the locality of program and data accesses allow cache operations to increase performance of a multi-processor system. A cache is typically a single structure of RAM, allocated within the processing device. From another perspective, a cache improves parallel processing performance by increasing independence of a processor from main memory.
Machine vision systems for intelligent mobile platforms have been proposed in the past as a possible mechanism for object avoidance. At least in some cases, the mobile platforms consist of a computing engine, a plurality of physical sensors (i.e., gyroscopes, accelerometers, Global Positioning System (GPS) devices) and sensors that can form images (i.e., camera, lidar (light detection and ranging) sensors, etc.). Additionally, these mobile systems can have a plurality of electro-mechanical actuators that need to be controlled and may run one or more machine vision applications on the computing engine of the mobile platform. Typical applications include data processing, image processing, audio processing and data communications. A particular application involves the processing of live, streaming data, such as a stream of digital images or video. When processing live, streaming data, a memory is often needed to accumulate sufficient data prior to performing an operation.